[INFO] cloning repository https://github.com/peonies1007/fintrack
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/peonies1007/fintrack" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeonies1007%2Ffintrack", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeonies1007%2Ffintrack'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 386dd3d9d8279ed19f35113ab925318858be51d9
[INFO] fixing peonies1007/fintrack against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpeonies1007%2Ffintrack" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/peonies1007/fintrack
[INFO] finished tweaking git repo https://github.com/peonies1007/fintrack
[INFO] tweaked toml for git repo https://github.com/peonies1007/fintrack written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/peonies1007/fintrack on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/peonies1007/fintrack already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155
[INFO] running `Command { std: "docker" "start" "485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking clap_builder v4.5.57
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking clap v4.5.57
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking fintrack v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0583]: file not found for module `delete`
[INFO] [stdout]   --> src/commands.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub mod delete;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `delete`, create file "src/commands/delete.rs" or "src/commands/delete/mod.rs"
[INFO] [stdout]    = note: if there is a `mod delete` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `subcategory`
[INFO] [stdout]   --> src/commands.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub mod subcategory;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `subcategory`, create file "src/commands/subcategory.rs" or "src/commands/subcategory/mod.rs"
[INFO] [stdout]    = note: if there is a `mod subcategory` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `total`
[INFO] [stdout]   --> src/commands.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub mod total;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `total`, create file "src/commands/total.rs" or "src/commands/total/mod.rs"
[INFO] [stdout]    = note: if there is a `mod total` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `update`
[INFO] [stdout]   --> src/commands.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub mod update;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `update`, create file "src/commands/update.rs" or "src/commands/update/mod.rs"
[INFO] [stdout]    = note: if there is a `mod update` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `command_prelude`
[INFO] [stdout]  --> src/utils.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod command_prelude;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `command_prelude`, create file "src/utils/command_prelude.rs" or "src/utils/command_prelude/mod.rs"
[INFO] [stdout]   = note: if there is a `mod command_prelude` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `delete`
[INFO] [stdout]   --> src/commands.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub mod delete;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `delete`, create file "src/commands/delete.rs" or "src/commands/delete/mod.rs"
[INFO] [stdout]    = note: if there is a `mod delete` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `subcategory`
[INFO] [stdout]   --> src/commands.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub mod subcategory;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `subcategory`, create file "src/commands/subcategory.rs" or "src/commands/subcategory/mod.rs"
[INFO] [stdout]    = note: if there is a `mod subcategory` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `total`
[INFO] [stdout]   --> src/commands.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub mod total;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `total`, create file "src/commands/total.rs" or "src/commands/total/mod.rs"
[INFO] [stdout]    = note: if there is a `mod total` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `update`
[INFO] [stdout]   --> src/commands.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub mod update;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `update`, create file "src/commands/update.rs" or "src/commands/update/mod.rs"
[INFO] [stdout]    = note: if there is a `mod update` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `command_prelude`
[INFO] [stdout]  --> src/utils.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod command_prelude;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `command_prelude`, create file "src/utils/command_prelude.rs" or "src/utils/command_prelude/mod.rs"
[INFO] [stdout]   = note: if there is a `mod command_prelude` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GlobalContext` in this scope
[INFO] [stdout]  --> src/commands.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type Exec = fn(&mut GlobalContext, &ArgMatches) -> CliResult;
[INFO] [stdout]   |                         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct through its public re-export
[INFO] [stdout]   |
[INFO] [stdout] 1 + use crate::GlobalContext;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CliError` in this scope
[INFO] [stdout]    --> src/models.rs:167:42
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub type CliResult = Result<CliResponse, CliError>;
[INFO] [stdout]     |                                          ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::CliError;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `command_prelude::*`
[INFO] [stdout]  --> src/commands.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{command_prelude::*, CliResult};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDate`
[INFO] [stdout]  --> src/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::NaiveDate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `GlobalContext` in this scope
[INFO] [stdout]  --> src/commands.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type Exec = fn(&mut GlobalContext, &ArgMatches) -> CliResult;
[INFO] [stdout]   |                         ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct through its public re-export
[INFO] [stdout]   |
[INFO] [stdout] 1 + use crate::GlobalContext;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `CliError` in this scope
[INFO] [stdout]    --> src/models.rs:167:42
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub type CliResult = Result<CliResponse, CliError>;
[INFO] [stdout]     |                                          ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::CliError;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `command_prelude::*`
[INFO] [stdout]  --> src/commands.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{command_prelude::*, CliResult};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDate`
[INFO] [stdout]  --> src/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::NaiveDate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_category` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let category = args.get_category("category")?;
[INFO] [stdout]    |                         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_category` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let category = args.get_category_opt("category")?;
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_category` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let category = args.get_category("category")?;
[INFO] [stdout]    |                         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_category` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let category = args.get_category_opt("category")?;
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_f64_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:46:23
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let amount = args.get_f64_or_default("amount");
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_f64_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_usize_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 46 -     let amount = args.get_f64_or_default("amount");
[INFO] [stdout] 46 +     let amount = args.get_usize_or_default("amount");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_f64_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:46:23
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let amount = args.get_f64_or_default("amount");
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_f64_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_usize_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 46 -     let amount = args.get_f64_or_default("amount");
[INFO] [stdout] 46 +     let amount = args.get_usize_or_default("amount");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_subcategory_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:54:33
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let subcategory_name = args.get_subcategory_or_default("subcategory");
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_subcategory_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_subcategory_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 54 -     let subcategory_name = args.get_subcategory_or_default("subcategory");
[INFO] [stdout] 54 +     let subcategory_name = args.get_subcategory_opt("subcategory");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_subcategory_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:54:33
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let subcategory_name = args.get_subcategory_or_default("subcategory");
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_subcategory_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_subcategory_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 54 -     let subcategory_name = args.get_subcategory_or_default("subcategory");
[INFO] [stdout] 54 +     let subcategory_name = args.get_subcategory_opt("subcategory");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_string_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:55:28
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let description = args.get_string_or_default("description");
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_string_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_usize_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 55 -     let description = args.get_string_or_default("description");
[INFO] [stdout] 55 +     let description = args.get_usize_or_default("description");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_string_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:55:28
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let description = args.get_string_or_default("description");
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_string_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_usize_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 55 -     let description = args.get_string_or_default("description");
[INFO] [stdout] 55 +     let description = args.get_usize_or_default("description");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_date_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 68 |       let date = args
[INFO] [stdout]    |  ________________-
[INFO] [stdout] 69 | |         .get_date_opt("date")
[INFO] [stdout]    | |_________-^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_date_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 69 -         .get_date_opt("date")
[INFO] [stdout] 69 +         .get_category_opt("date")
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_date_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/add.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 68 |       let date = args
[INFO] [stdout]    |  ________________-
[INFO] [stdout] 69 | |         .get_date_opt("date")
[INFO] [stdout]    | |_________-^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_date_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 69 -         .get_date_opt("date")
[INFO] [stdout] 69 +         .get_category_opt("date")
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_currency_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/init.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let currency = args.get_currency_or_default("currency");
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_currency_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_string_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 24 -     let currency = args.get_currency_or_default("currency");
[INFO] [stdout] 24 +     let currency = args.get_string_or_default("currency");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_currency_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/init.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let currency = args.get_currency_or_default("currency");
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_currency_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_string_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 24 -     let currency = args.get_currency_or_default("currency");
[INFO] [stdout] 24 +     let currency = args.get_string_or_default("currency");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_f64_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/init.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let opening_balance = args.get_f64_or_default("opening");
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_f64_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_usize_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 25 -     let opening_balance = args.get_f64_or_default("opening");
[INFO] [stdout] 25 +     let opening_balance = args.get_usize_or_default("opening");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_f64_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/init.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let opening_balance = args.get_f64_or_default("opening");
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_f64_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_usize_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 25 -     let opening_balance = args.get_f64_or_default("opening");
[INFO] [stdout] 25 +     let opening_balance = args.get_usize_or_default("opening");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_date_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:54:27
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let start_date = args.get_date_opt("start");
[INFO] [stdout]    |                           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_date_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 54 -     let start_date = args.get_date_opt("start");
[INFO] [stdout] 54 +     let start_date = args.get_category_opt("start");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_date_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:54:27
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let start_date = args.get_date_opt("start");
[INFO] [stdout]    |                           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_date_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 54 -     let start_date = args.get_date_opt("start");
[INFO] [stdout] 54 +     let start_date = args.get_category_opt("start");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_date_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:55:25
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let end_date = args.get_date_opt("end");
[INFO] [stdout]    |                         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_date_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 55 -     let end_date = args.get_date_opt("end");
[INFO] [stdout] 55 +     let end_date = args.get_category_opt("end");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_date_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:55:25
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let end_date = args.get_date_opt("end");
[INFO] [stdout]    |                         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_date_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 55 -     let end_date = args.get_date_opt("end");
[INFO] [stdout] 55 +     let end_date = args.get_category_opt("end");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_category_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let category_filter = args
[INFO] [stdout]    |  ___________________________-
[INFO] [stdout] 58 | |         .get_category_opt("category")
[INFO] [stdout]    | |_________-^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_category_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_subcategory_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 58 |         .get_subcategory_opt("category")
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_category_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 57 |       let category_filter = args
[INFO] [stdout]    |  ___________________________-
[INFO] [stdout] 58 | |         .get_category_opt("category")
[INFO] [stdout]    | |_________-^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_category_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_subcategory_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 58 |         .get_subcategory_opt("category")
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_subcategory_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 61 |       let subcategory_filter = args
[INFO] [stdout]    |  ______________________________-
[INFO] [stdout] 62 | |         .get_subcategory_opt("subcategory")
[INFO] [stdout]    | |_________-^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_subcategory_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 62 -         .get_subcategory_opt("subcategory")
[INFO] [stdout] 62 +         .get_category_opt("subcategory")
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_subcategory_opt` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 61 |       let subcategory_filter = args
[INFO] [stdout]    |  ______________________________-
[INFO] [stdout] 62 | |         .get_subcategory_opt("subcategory")
[INFO] [stdout]    | |_________-^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_subcategory_opt` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_category_opt` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 62 -         .get_subcategory_opt("subcategory")
[INFO] [stdout] 62 +         .get_category_opt("subcategory")
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> src/commands/list.rs:63:20
[INFO] [stdout]    |
[INFO] [stdout] 63 |         .and_then(|name| tracker_data.subcategory_id(&name));
[INFO] [stdout]    |                    ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]    = note: all function arguments must have a statically known size
[INFO] [stdout]    = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> src/commands/list.rs:63:20
[INFO] [stdout]    |
[INFO] [stdout] 63 |         .and_then(|name| tracker_data.subcategory_id(&name));
[INFO] [stdout]    |                    ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]    = note: all function arguments must have a statically known size
[INFO] [stdout]    = help: unsized fn params are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_usize_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:97:26
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let first = args.get_usize_or_default("first");
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_usize_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_f64_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 97 -         let first = args.get_usize_or_default("first");
[INFO] [stdout] 97 +         let first = args.get_f64_or_default("first");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_usize_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]   --> src/commands/list.rs:97:26
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let first = args.get_usize_or_default("first");
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_usize_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_f64_or_default` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 97 -         let first = args.get_usize_or_default("first");
[INFO] [stdout] 97 +         let first = args.get_f64_or_default("first");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_usize_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]    --> src/commands/list.rs:102:25
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let last = args.get_usize_or_default("last");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_usize_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_f64_or_default` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 102 -         let last = args.get_usize_or_default("last");
[INFO] [stdout] 102 +         let last = args.get_f64_or_default("last");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_usize_or_default` found for reference `&ArgMatches` in the current scope
[INFO] [stdout]    --> src/commands/list.rs:102:25
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let last = args.get_usize_or_default("last");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ArgMatchesExt` which provides `get_usize_or_default` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::utils::cli::ArgMatchesExt;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_f64_or_default` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 102 -         let last = args.get_usize_or_default("last");
[INFO] [stdout] 102 +         let last = args.get_f64_or_default("last");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `error::CliError` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/output.rs:74:44
[INFO] [stdout]    |
[INFO] [stdout] 74 |         _ => writeln!(writer, "Error: {}", err),
[INFO] [stdout]    |                                       --   ^^^ `error::CliError` cannot be formatted with the default formatter
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `error::CliError`
[INFO] [stdout]   --> src/error.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum CliError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout]    = note: required for `&error::CliError` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `error::CliError` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> src/output.rs:74:44
[INFO] [stdout]    |
[INFO] [stdout] 74 |         _ => writeln!(writer, "Error: {}", err),
[INFO] [stdout]    |                                       --   ^^^ `error::CliError` cannot be formatted with the default formatter
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `error::CliError`
[INFO] [stdout]   --> src/error.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub enum CliError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout]    = note: required for `&error::CliError` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0583, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0583, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fintrack` (lib test) due to 22 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `fintrack` (lib) due to 22 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155", kill_on_drop: false }`
[INFO] [stdout] 485000506c2a57c76b6676913be26f91db49cc051648787f1f42de67db7c4155
